home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / earcd / dev / mui / mui37_de.lha / Amiga-E / Examples / Envbrowser.e < prev    next >
Text File  |  1996-08-25  |  5KB  |  149 lines

  1. /*
  2. **  Original C Code written by Stefan Stuntz
  3. **
  4. **  Translation into E by Klaus Becker
  5. **
  6. **  All comments are from the C-Source
  7. */
  8.  
  9. OPT PREPROCESS
  10.  
  11. /*
  12. ** Loading the needed MODULEs
  13. */
  14.  
  15. MODULE 'AmigaLib/boopsi'
  16. MODULE 'dos/var'
  17. MODULE 'muimaster', 'libraries/mui'
  18. MODULE 'utility/tagitem', 'utility/hooks'
  19. MODULE 'intuition/classes', 'intuition/classusr'
  20. MODULE 'libraries/gadtools'
  21.  
  22. ENUM ER_NON, ER_MUILIB, ER_APP          /* for the exception handling */
  23. ENUM ID_DISPLAY=1,ID_EDIT,ID_DELETE,ID_SAVE 
  24.  
  25. PROC main() HANDLE
  26.   DEF app,bt_Edit,bt_Delete,bt_Save,wi_Browser,lv_Show,lv_Vars
  27.   DEF buffer[2048]:STRING, var,running=TRUE,signal,result
  28.  
  29.   IF (muimasterbase:=OpenLibrary(MUIMASTER_NAME,MUIMASTER_VMIN))=NIL THEN Raise(ER_MUILIB)
  30.  
  31.   app := ApplicationObject,
  32.     MUIA_Application_Title      , 'EnvBrowser',
  33.     MUIA_Application_Version    , '$VER: EnvBrowser 10.11 (23.12.94)',
  34.     MUIA_Application_Copyright  , ' 1992/93, Stefan Stuntz',
  35.     MUIA_Application_Author     , 'Stefan Stuntz & Klaus Becker',
  36.     MUIA_Application_Description, 'View environment variables.',
  37.     MUIA_Application_Base       , 'ENVBROWSER',
  38.     SubWindow, wi_Browser:= WindowObject,
  39.       MUIA_Window_ID, "MAIN",
  40.       MUIA_Window_Title, 'Environment Browser',
  41.       WindowContents, VGroup,
  42.         Child, HGroup,
  43.           Child, lv_Vars:= ListviewObject,
  44.             MUIA_Listview_List, DirlistObject,
  45.               InputListFrame,
  46.               MUIA_Dirlist_Directory      , 'env:',
  47.               MUIA_Dirlist_FilterDrawers, MUI_TRUE,
  48.               MUIA_List_Format          , 'COL=0',
  49.               End,
  50.             End,
  51.           Child, lv_Show:= ListviewObject,
  52.             MUIA_Listview_List, FloattextObject,
  53.               ReadListFrame,
  54.               MUIA_Font, MUIV_Font_Fixed,
  55.               End,
  56.             End,
  57.           End,
  58.         Child, HGroup, MUIA_Group_SameSize, MUI_TRUE,
  59.           Child, bt_Edit:=   SimpleButton('_Edit'  ),
  60.           Child, bt_Delete:= SimpleButton('_Delete'),
  61.           Child, bt_Save:=   SimpleButton('_Save'  ),
  62.           End,
  63.         End,
  64.       End,
  65.     End
  66.  
  67.   IF app=NIL THEN Raise(ER_APP)
  68.  
  69.   doMethodA(wi_Browser,[MUIM_Notify,MUIA_Window_CloseRequest,MUI_TRUE,app,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit])
  70.   doMethodA(lv_Vars   ,[MUIM_Notify,MUIA_List_Active,MUIV_EveryTime,app,2,MUIM_Application_ReturnID,ID_DISPLAY])
  71.   doMethodA(lv_Vars   ,[MUIM_Notify,MUIA_Listview_DoubleClick,MUI_TRUE,app,2,MUIM_Application_ReturnID,ID_EDIT])
  72.   doMethodA(bt_Delete ,[MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_DELETE])
  73.   doMethodA(bt_Save   ,[MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_SAVE  ])
  74.   doMethodA(bt_Edit   ,[MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,ID_EDIT  ])
  75.  
  76.   doMethodA(wi_Browser,[MUIM_Window_SetCycleChain,lv_Vars,lv_Show,bt_Edit,bt_Delete,bt_Save,NIL])
  77.  
  78.   set(wi_Browser,MUIA_Window_Open,MUI_TRUE)
  79.  
  80.     WHILE running
  81.       result:= doMethodA(app,[MUIM_Application_Input,{signal}])
  82.         SELECT result
  83.                CASE MUIV_Application_ReturnID_Quit
  84.                     running:=FALSE
  85.                CASE ID_DISPLAY
  86.                     get(lv_Vars,MUIA_Dirlist_Path,{var})
  87.                     IF (var AND GetVar(var,buffer,StrMax(buffer),GVF_GLOBAL_ONLY OR GVF_BINARY_VAR)<>-1)
  88.                       set(lv_Show,MUIA_Floattext_Text,buffer)
  89.                     ELSE
  90.                       DisplayBeep(0)
  91.                     ENDIF
  92.                CASE ID_DELETE
  93.                     get(lv_Vars,MUIA_Dirlist_Path,{var})
  94.                     IF var
  95.                       set(lv_Show,MUIA_Floattext_Text,NIL)
  96.                       DeleteFile(var)
  97.                       doMethodA(lv_Vars,[MUIM_List_Remove,MUIV_List_Remove_Active])
  98.                     ELSE
  99.                       DisplayBeep(0)
  100.                     ENDIF
  101.  
  102.                CASE ID_SAVE
  103.                  get(lv_Vars,MUIA_Dirlist_Path,{var})
  104.                  IF var
  105.                    set(app,MUIA_Application_Sleep,MUI_TRUE)
  106.                    StringF(buffer,'copy env:\s envarc:\s',FilePart(var),FilePart(var))
  107.                    Execute(buffer,0,0)
  108.                    set(app,MUIA_Application_Sleep,FALSE)
  109.                  ELSE
  110.                    DisplayBeep(0)
  111.                  ENDIF
  112.  
  113.                CASE ID_EDIT
  114.                  get(lv_Vars,MUIA_Dirlist_Path,{var})
  115.                  IF var
  116.                    set(app,MUIA_Application_Sleep,MUI_TRUE)
  117.                    StringF(buffer,'ged -sticky "\s"',var)
  118.                    Execute(buffer,0,0)
  119.                    set(app,MUIA_Application_Sleep,FALSE)
  120.                    doMethodA(wi_Browser,[MUIM_Window_ScreenToFront])
  121.                  ELSE
  122.                    DisplayBeep(0)
  123.                  ENDIF
  124.         ENDSELECT
  125.  
  126.       IF (running AND signal) THEN Wait(signal)
  127.     ENDWHILE
  128.  
  129. EXCEPT DO
  130.   IF app THEN Mui_DisposeObject(app)
  131.   IF muimasterbase THEN CloseLibrary(muimasterbase)
  132.   
  133.   SELECT exception
  134.     CASE ER_MUILIB
  135.       WriteF('Failed to open \s.\n',MUIMASTER_NAME)
  136.       CleanUp(20)
  137.  
  138.     CASE ER_APP
  139.       WriteF('Failed to create application.\n')
  140.       CleanUp(20)
  141.       
  142.   ENDSELECT
  143. ENDPROC 0
  144.  
  145.  
  146.  
  147.  
  148.  
  149.